package leetcode.array;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
 * @author 陈正龙
 * @date 2022/7/20 15:28
 * 844.比较含退格的字符串
 */
public class _844 {

    /*
    给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。
    注意：如果对空文本输入退格字符，文本继续为空。

    示例 1：
    输入：s = "ab#c", t = "ad#c"
    输出：true
    解释：s 和 t 都会变成 "ac"。

    示例 2：
    输入：s = "ab##", t = "c#d#"
    输出：true
    解释：s 和 t 都会变成 ""。

    示例 3：
    输入：s = "a#c", t = "b"
    输出：false
    解释：s 会变成 "c"，但 t 仍然是 "b"。
     */
    public static void main(String[] args) {
        boolean b = backspaceCompare("#", "");
        System.out.println("b = " + b);
    }

    public static boolean backspaceCompare(String s, String t) {
        return getStr(s).equals(getStr(t));
    }

    public static String getStr(String s) {

        char[] chars = s.toCharArray();
        int left = 0;
        int right = 0;
        for (char c : chars) {
            if (c != '#') {
                chars[left] = chars[right];
                left++;
            }
            if (c == '#' && left > 0) {
                left--; // 退格
            }
            right++;
        }
        String str = String.valueOf(chars, 0, left);
        System.out.println("str = " + str);
        return str;
    }


}
